#异常的传递性质
def fun1():
    print('开始执行fun1')
    a=1/0
    print("执行完毕")

def fun2():
    print("执行fun2")
    fun1()
    print("执行完毕")

def main():
    # try:
        fun2()
    # except Exception as e:
    #     print(e)
#执行fun2
# 开始执行fun1
# division by zero
main()

#我们不用真正找到问题发生的地方，
# 去捕获。因为异常的传递性。我们可以找他的顶级，会传递上来